#ifndef __RELAYER_H__
#define __RELAYER_H__

#include <sys/types.h>

#define REL_JOBMAX 10000

enum
{
    STATE_RUNNING = 1,
    STATE_CANCELED,
    STATE_OVER,
};

struct rel_stat_st
{
    int state;
    int fd1;
    int fd2;
    int64_t count12;
    int64_t count21;
};

int rel_addjob(int fd1, int fd2);
/*
 * >=0 当前任务ID
 * -EINVAL 参数非法
 * -ENOSPC 任务数满
 * -ENOMEM 内存申请失败
 * */
int rel_cancel(int id);
/*
 * == 0 成功
 * -EINVAL 参数非法
 * -EBUSY  已被取消
 * */
int rel_waitjob(int id, struct rel_stat_st *ptr);
/*
 * == 0 成功 已经终止并返回状态
 * -EINVAL 参数非法
 * */
int rel_statjob(int id, struct rel_stat_st *ptr);
/*
 * == 0 成功 指定任务状态已经返回
 * -EINVAL 参数非法
 * */

#endif